1
Sintaxe Natural: A Filosofia da Sobrecarga de Operadores
AI037Lesson 17
00:00

A filosofia da Sintaxe Natural argumenta que tipos definidos pelo usuário devem se comportar como cidadãos de primeira classe. Ao implementar sobrecarga de operadores, permitimos que as classes usem a notação padrão (como + ou ==), o que reduz a carga cognitiva e atende ao princípio da menor surpresa.

1. Anatomia e Disposição

Um operador é uma função com um nome especial: a palavra-chave operador seguida por um símbolo. Um operador unário tem um operando, enquanto um operador binário tem dois. Quando definido como um função membro, o operando à esquerda liga-se ao ponteiro implícito this (a.operator+(b)). Como um não membro, ambos são explícitos (operador+(a, b)).

Sobrecarregável+ - * / % ^& | ~ ! = < >+= -= *= /= << >>== != <= >= && ||++ -- , ->* -> () []Não Sobrecarregável:: (Escopo).* (Desreferência de membro). (Ponto)?: (Condicional)Tabela 14.1. Permissões de Operadores (Ref. p. 684)

2. Restrições e Ética

O C++ evita a "vandalismo da linguagem": você não pode criar novos símbolos (por exemplo, **) ou redefinir operações para tipos embutidos (por exemplo, int + int). A precedência e a associação são imutáveis. Princípio arquitetônico: Classes definindo == integrar-se facilmente com algoritmos da biblioteca como std::find.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>